{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a585cd20",
   "metadata": {},
   "source": [
    "黑天鹅事件,造成股价大幅下跌,我们统计第2天的涨幅情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "dba1d31b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "跌幅超过阈值的总次数: 173\n",
      "\n",
      "概率统计：\n",
      "次日高开: 0.94\n",
      "次日低开: 0.06\n",
      "次日上涨: 0.60\n",
      "次日下跌: 0.40\n",
      "第3日高开: 0.90\n",
      "第3日低开: 0.10\n",
      "第3日上涨: 0.61\n",
      "第3日下跌: 0.39\n"
     ]
    },
    {
     "data": {
      "image/png": "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9ttv1vddnn79+kmSatasqaNHj+qzzz5TVlaWFi1apMcee8z6vmvevLnHbxRJqlevnj788EPdeuuteuihh7Rq1Sq5XC75+fkpICAg347agIAAOZ1Oud1unT17Vrm5uQoJCSnWMuTJyMhQhw4d1L17d40dO/ay5iFJv/76q5577jl98803cjqdevTRR/XKK69Y3+Vnz57VgAED9NVXX2nw4MGaNGmSpHOBb+jQoVqyZMllve4PP/ygrl27ys/PT1WqVFHVqlUVGhqqGjVqqGbNmvr973+vO+64Q3Xr1lWdOnWstqqgwD179mytXLlS//rXv3TixAndf//9mjp1qnXwYd26ddqwYYOWLl2qhg0b6rrrrtPDDz+sl19+WdnZ2R5td0pKih555BF99dVXcrvdCggI0AMPPKDp06cXuK78/f0VEhKiZs2aXXR5834PFrYNjRo1St98802hzx84cGCh4zZv3qzWrVtLkuLi4tSsWTMFBgaqa9euGj58uDp06CC32229fuvWrfXcc8/lm8/WrVu1d+/eiy4HisEAxTR16lQjydx0003m7Nmz1vCmTZuaDh06WI9zcnJM9+7djSQza9asYr3GX/7yFyPJY/6XcvToUdO1a1czffp0k5GRYbKysozb7TbDhg0zrVu3NsYYM3z4cHPNNddYz2nXrp2JjY31mM+vv/5qxo8fb8aPH2+uvfZa06xZM+vxhg0birUcxhhz5MgRI6nAv5o1a1rTZWZmGqfTad58801rWLNmzUyfPn3yzfPbb781DofDtGvXzuTm5pqMjAzjcrmM2+3ON21sbKzp0KGDyc3NNVlZWebMmTPFXoY8Z86cMX/4wx/MmDFjLnsexhizf/9+c++995rq1aubiIgIM3r0aJOTk2ONz87ONv369TOhoaEmPj7eGn727FnTs2fPy37dr7/+2kgyfn5+5qqrrjL16tUzLVq0MB07djT333+/efrpp82ECRPMBx98YL755huzfft2c+rUqXzzOXr0qGnQoIGJjIw0+/bt8xj3xhtvGKfTabZt22bS0tIK/MvKyiqwvv79+5uifi03aNDANG/evMBxr7zySqGfuUv9TZkyxZrPiRMnzBdffGH+8Y9/mFatWpkuXbqYr776ynzyySfm5MmT5plnnvHYns43b948I6nAzyQA+zz00ENGknn22WetYRe2z4899piRZJ566qliz/9y2mdjTIHfBcOGDTNt27Y1xni2zz/99JORZJYtW+Yx/Zo1a4wk069fP9OoUSNTv3598/jjj5uwsDDzzjvvGGOM6dy5c6HfbxMmTPCYX2Zmpvn000/NsmXLzOLFi40k88ILL5glS5aYL7/80pruiy++MJLMjz/+aA2rV6+eGTJkSIHL+tRTT5mrr77a7Nu3zwwdOrTI378PPPBAsd7TPC6Xy9x1111GUona52PHjpkGDRqYSpUqmRdeeMGMGzfOVKpUyYwcOdKa5vPPPzchISFmwoQJRpL5+eefjTHGLFy40Lz//vuX/drLly83kszKlSsvex7GGLNixQoTHBxsXnjhBWvYH/7wB+u33u7du014eLjp2rWrNf5Pf/qTCQoKMvv37/eYl9vtNh06dDD16tUzn376qUlMTDTPP/+8keTx2+R8DRo08NjWCrN3796LboMnTpwwBw8eNJmZmR7D//WvfxX4Pp09e9YkJyebQ4cOmezs7ALnKcnMmzfPY1ibNm3M0KFDjTHn1m2nTp3M6tWrjTHGPPzww0VaFhQNR7pRbMOGDdOmTZv0/vvv689//rMmT55c4HR/+tOftHTpUj311FN6/PHHba+rZs2aWr58eYFdfgs60rthwwZ9//33+brHHjp0SKNHj1a/fv2sc8D37dunRYsWKTw8XG3atFGXLl20YsWKAuuYMGGCRo4caT0OCwvTp59+qkqVKuns2bO688479cILL6ht27YetX799ddyu9268cYbrWHp6ekKCwvL9xqdOnXSk08+qa+//loHDhzQG2+8oenTp1/0/cnbS/3AAw/o73//+0WnLUh2drYeeOABbdiwQd27dy/28/MkJyerffv2OnbsmIYPH66AgABNmDBBbrfbOmKxdOlSffHFF3rppZc0atQoPfTQQ/r973+vjz/+WPfee+9lv3bent0VK1aoY8eOlz2fmjVrasmSJbrxxht111136ccff1SlSpVkjNHbb78tt9uta665ptDnz5gxQ0888US+4cU9KlzYHvJnnnlGAwcOVGhoqKpWrWoNz8nJUUBAgMaMGeNxJMTtduvMmTNKS0vzOGpQrVo13XnnnZKk8ePHq06dOh7r/vx6Dx48qHvvvVcPPvig/vSnP1nDC+uCD8Aeb731lnbs2KFbbrmlwPFut1tVqlRRt27drC62dtq+fbuaNm1q9Ro7ffq0jhw5Iulcl12Xy5XvOQkJCWrTpo3uuOMOj+F5bflrr72m5557TllZWZo1a5ZWrVplHSWvXLmynn76ab322msez73xxhvzXWcjODhYd999t6Rz7a0k/f73v1fPnj2tadxutyZOnKhmzZpZvdAk5fu+PN+ECRP0xhtvKCgoSPHx8Ro0aFCBR0UfeOAB+fn5af78+crJybmsU3GOHj2qu+++WwcOHCj2cy80duxY7d+/X8uWLbPe+9q1a+uJJ57Q448/rujoaO3YsUMtW7bUyJEjNWXKFO3YsUO///3vtWjRomKdHnWh3Nxc69+cnJwiPcf8/96FxhiFhoYqKytLI0eOVOvWrXXHHXfoP//5jwICAjRo0CCrh9fZs2f18MMPq1OnTlaPr7vvvluVK1fO1159+eWXWr16tX788Udr3bdq1Uo//vijPv/8c+so//mK244XdqpitWrV1KlTJyUmJhY4vrBz2T/88EP16dOnWDXkOX78uFauXJmvOz5KB6Ebl4VGnUb9cpX3Rj1Pq1at9Pbbb6t///566qmnNGfOHC1atEi7d+/Wl19+aXXtOt8LL7ygDz74wPo8XKi0GusqVarohRde0LRp0wocP27cOI0bNy7f8Mcff1yzZs0qVg15XC6X1q5dW+iyAbBXenq6HA6HKleurHXr1hU6ndPp1KRJk5Sbm1vod86ePXuUm5tbYJfo06dPS5L279+f7/lut9vqnluzZk3rlLRGjRrprbfeUrt27fTZZ59p0KBB1nOaNm3qMY/169fr888/19KlSwus/VLcbrfS0tJ08OBBj+Fnz561ThvKc/DgQZ08edI65Us6dxrdtm3blJ2drXr16mnixIn68ccf9eGHH1qng/3www86ffq0fve73xVYw/ltcaNGjQqtNe983RYtWlxyuQrz9ttvy+FwaO3atQWeJldUxhh9/PHHuu666zx+Fz388MMaPny4Pv/8c8XHx1s7b6VzO35zcnK0atUq3XjjjflOMSyOvNOfCrr+z6Xcc889+uSTTxQcHKx169YpNTVVderUUUBAgPz9/a3PzSuvvKJTp07J399f7733nsc8jh8/rsqVK2vMmDHWsFatWmnx4sUev8skKSgoqNBtp7g7mi/2mc47leL811qzZo0GDRqk9957T23btrWGnz17VllZWYqOji7W658v78BEgwYNLnseKByhG8VCo/6/GmjUi68iNOrne+CBB/TTTz/prrvuUkZGhkaPHq2ePXuqR48eSklJ0d69e9WsWTPraPPq1at10003qWbNmgW+Rmk21s8++6weeeQRj/crNzdX1157rYYOHaonn3zSGu52u5WZmVnsc9DPR2MNeFefPn0KbNPy7Ny5s9DvmJ07d3qc1/3II49Y51oXprC2SToXbl544QXVrl1bM2fO1PDhw3XLLbdo9+7d1ndFamqqR0+cPC1atNB7772nbt265RtXlPZZkj766CN99NFH+YbnvXaeqVOnatq0aQoKCpLT6VRAQIDi4+MVHBysrKwsNWvWTFu3btXAgQPVp08fZWVlqXXr1jp69KhuuOEG3XPPPda8jh49qt27dyssLMwKennv6a5duzR48GAtXLhQdevWLdIyFNUDDzygF198scjvTWF+++03JScn68EHH/QYHhgYqJYtW2rTpk2SpLp162rXrl1KTEzUb7/9prp16+qdd97RjBkzSvT6Z8+elXTuwmcFXWOgIHlXIz//vHw/Pz9Vq1ZNmZmZBT7n2muv1R/+8AfNnz/fY7jD4fC45o907pouF143Z/369fr22289enRdOJ+MjIx81025UN4Vwy/cJvOuXxQcHFxgj7m8353169cv8Lzxs2fP6syZMwoODpafn5927typ77//3jogtHbtWhljFBUVle+3kNvtltPpzHetApQOQjeKhUb9f2jUi6+iNOrnmzp1qiRp8ODBOnr0qHXhkx07dqhdu3Z6/vnn9dprr2nDhg3at2+fnnnmmUJfK2/buVRjnbcsBW1reY1tQeE37+h+REREgY113m1EnE6ngoKClJaWpg8//FDBwcE6duyYjDF677335HA48l2dP+9zX6NGjUvWDqD0jRo1SoMHD1ZQUFCRd06+//77+uCDD/L1knrppZeUnp7ucZQwz6BBg3TkyBE9+eST+U41yrsg2Pltd79+/XT77bfr66+/VoMGDZSdnS2n02n1usqb1/bt23X48GENGTJEkvTPf/7To56rr766SDsmi3MhrzfffFNvvvmm9bh3797KysrSV199Jencd+b8+fN12223WWFnypQpql69ulq0aOGxk33Dhg0ePdiqVq1q3Xd83bp1+u677/Tqq69q5syZRa6vKC72O6k4Tp48Kangnfg1a9bUvn37JJ27MNcrr7yi1q1bq02bNgoPD1ft2rUVFhams2fPXvaO8byDLXfddVeR2+eL2bVrl9W77XzZ2dk6ffp0ge3shb/fzrd06VL9/e9/16effqrOnTsrISGhwOmcTqd++umnfHf4KcyFn+nt27erZcuWl3xeYd3L86xcuVIdO3bU2rVrNXToUGuHwgcffKD3339fd911V77QnZaWpoiICC6AahNCN4qFRv0cGvXLU9Ea9fP9+c9/VufOna1ly/scXXvttZLOhdG//vWvuu+++wqdR952UNTGuqAdAQ0aNLBuKVKYwrqX58k75/vEiRMaOnSotYNoz5492rhxo8LCwvKF7rS0NEkq9Cg+AHvl3YayOP79739Lyn99iMJOHdu5c6eOHDmigIAArVy5UtOmTSvSztjq1aurb9++kqQTJ04oJCREe/bskXRuB2Ljxo115MgRpaSk6He/+51effVVde3aVS1btpTL5bLqu1T7HBcXpy+//PKi01x4X+SlS5eqUqVK6tChQ75p/f39VaNGjUJ78Jx/jZTbb79dWVlZ1jnE518v5oEHHtBbb72ld999Vy+++KLq1Klz0Rq9IS9w5t1q6nwhISE6deqUJCk8PFxbt27Vtm3b1Lp1aw0bNkx9+/bVNddco7179+qdd97Jd7utoshrtyIjI5WamqrDhw8X6XmNGjUq8Lo9rVq1snoXXmjXrl364osv8g3PyMgo9HUOHDigTZs26ezZs/L397dup3khh8OhDh06aNWqVRete9++fQV2BW/QoIH+8Y9/KDQ0VKGhoVYA3rp1qx544AFdd911mjJlirZs2ZLvM5ubm6uMjAydOnXKCu4PP/ywHn74Yau26dOna8CAAR7PybN37958vRkvtiMCxUPoRrHQqNOol0RFa9Slc7cmyczM1FNPPeUR5JOTkyXJup5A/fr1Pbp0F+T8e2FfSmG3ilu0aJGCgoJ01VVXWTsn0tLS1Lt3b505c0affPKJNm3alK+Xh9vtlsvl0qlTp6yeEg0aNLB6B3Ts2FENGzb06JJ3YWMtKV8vi7zuagDslddTJSAgwLoVVWmbOnWqAgICNGPGDD366KP6+OOPdf/99xfpudu3b1fz5s11/Phxpaenq0mTJpLO3Zps0qRJeu6555SamqqxY8fq008/Vf369a2La+a5VAAIDg7WLbfcorlz50qSevXqpRYtWljXX/njH/+Y77orkydP1oYNG6ydwocPH9bChQvlcrl0zz33WNN/+OGHqlWrlvW8xx9/XEFBQdZjf39/j98557//DodDf/7zn/XAAw9o3bp16tWrV5Hes7KUFyALeo/zrm1y/rQxMTFKTk5WRkaGvvzySwUGBmro0KEaPnz4ZbXPx44dU1BQkKpVq6YPP/zQunXbpezduzdfe5idna2srKx8F7aVCu9efilDhgzRkCFD9Omnn6pv3756+OGHC/wtWJT2+2KqVq1q3dosz6ZNm/T0008rOjpaX331lT744AONHTtWv/76q3Xdn3fffVdz5szRxx9/XOitPgty/jWPNm/ebG2XBY1HyfBLCMWSm5ur9PR0uVwu2/Z+nd+ob9u2rVgXzsq7v/H5jXqTJk00Z84cTZw4UTfeeKNq1KihsWPHqnnz5lajPmXKFOsIZVEb9b1792rv3r1q3bq1+vXrZz2uVatWgY16r169rFCV16jPmzdPqampHo36ypUrrb+rr746X6Oe101dKrhRl3TR8+296XIa9VOnThXYqF+O8xv1pUuXqnnz5kX6KyycZ2dnWz0L8sJpns2bN0s6d9GToippYy2duyfuzTffrJYtW6pZs2aKiIjQs88+q+PHj+urr75SaGiohg8friNHjqhZs2Zq1qyZsrOz1atXL2VkZKhTp05F7gVwYWNds2ZNj4vNXTgNAPt8//33qlq1qnUup8PhuOTfxXq8XGjHjh2aO3euevfurUceeURt27bVsGHDirTzMj09XW3atNFnn32mN998U2fPntXZs2fVoEGDfOfRSucuSlrQkcJLtc9+fn6qVKmSdS5uUFCQqlataj328/PLdwAgLS1NrVu3ttrTrVu3aujQoRoyZIiSk5Ot6WNjY9WxY0frr2rVqoXujC1Ir169tGfPHp8M3NK5nlMOh0P79+/PNy45OTnfd7skTZ8+XUOHDlVSUpK6dOmiAQMG6NixY5fsbVWQLVu2WG1P3m+iXbt2yRhT4N+8efMkyeM3Up68C+kGBQVp9+7dHn/Z2dlKS0vLNzzv71Kf53vuuUd9+/bV0qVLrZ6G5ytuO36p6d99913dfPPNOnLkiAYPHqyIiAgNHjxYTqdTL7/8siTpq6++0pAhQ3T69OliX/B27NixeuCBB3T8+HGtW7dOv/zyizp27KjMzEw9+eST+S4YjMvHkW4Uy/fff3/J80hK4sJGffbs2Ro2bJjatWt3ySO3eY363//+d7355puaOHGipHNdo+1q1CV5NOp544vaqGdkZKh9+/Yejfr5e2wvt1EvycXO7FSSRn3cuHHq0qWLHn74Yb355ps6fvx4sS/2UVijXlj3+fnz52vgwIEFNuqS9Ne//lW//vqrVq5cmW89LV68WCEhIfr44481adKkIl01vrQb67Vr1+r+++/Xr7/+qu7duys2NlbSuWA+atQo/fjjj9q7d6969OihtLQ07dmzRzfddFORX79v377WOWHLli1TaGioOnbsqPHjx6tTp076+OOPC72tGYDSdfXVV2vmzJkKDAxUYGBgkba9Tz75RJ9++uklpztz5ozuv/9+OZ1OjR07Vg6HQ7NmzdINN9yg3r17a/Xq1Rc97WfZsmXKyspS27Zt5XQ6PXYYF1TnbbfdpnfeeUebNm3S9ddfbw2/sH0+e/as5syZY1101el0aunSpR491tatW6e3337benxhD4DDhw97/K657bbbrNO/JOnXX38tdLmKc+6rn59fvrb52LFjioqKKvI87BQcHKzmzZtbvRPzGGO0YcOGfFfwzsrK0tatWzV27FhlZmYqODjY+q2VkZFRrPbZGKONGzeqR48ekor3vhb0+clbZ88++6yeffbZfON37dqlzz77rMD53XXXXfr8888lSV988YX27t2bbx6RkZEyxhR4znhxFdaO79ixQ08++aS++eYbPfDAA9aVzKVzvw2ff/55jRo1SsYY/fWvf1W3bt20cOHCAnsSFmTfvn1q2LChdcrbpEmT5HA41L59e02aNElBQUH6wx/+UOLlw//wawjFQqNOo14SFalRP3TokF555RU99NBD+e75vXTpUiUmJmrZsmV6+OGH9cILL1gXXCtNhTXWJ06c0EsvvaSZM2fquuuuy3fe2SuvvKL27dvr0Ucf1dKlSxUWFqaVK1eqcePGRXrdkydPyul0ql27dpKkjRs3KjExUSNHjtTrr7+uzMxMNWjQgCuZA2WoTp061vVKimrHjh2XbJ9PnDihnj17asuWLZo6daq14/K6667TxIkT9eyzz+ree+/VwoULCzzHVZI+/fRTtW/fvsg7hNu2bauqVatq2rRpHrd2urBHUUBAgObMmaOzZ8/q97//vb7++mvdeuutVtfhuLg4XXPNNRo/frwk5et2e/r0aR0+fFjfffeddXT0QnnBas+ePR69sbKysgq99eTFdt7/9NNPevXVV3X8+HHt2rWrwNPOvOXuu+9WQkKCtmzZolatWkk69xvu5MmT6tKli8e07733nnVtj8qVK+vMmTM6c+aMJBX71qTr1q3TqVOnrPeiOHfyKGjam2++2eOzkpubqzFjxmjSpEkKDAxU7969rVMQzteoUSOPU6R++eUXjRgxQjfccINuvPFGSec+g1999ZVatGhR4B0/itsL9MLp3W63BgwYoAULFuiqq67SBx98oP79+3uE7szMTLVr10533HGHpkyZou7du+vzzz+/6Ckleb3O3n//fb3xxhvauXOn9fk9c+aMJk2apF69elmnUHBaWOnjHUWx5DXqgwYNUv/+/dWnT59L/uVdSOpiTpw4odtuu01btmzxuLJ0XqO+Zs0a3XvvvRe9yEVJGvXzXapRdzgcuvXWW3XgwAEdOHBA1113nfr37289Pv+cL6n4jfqOHTusv5I06nfeeaduvvlm7dq166K3FCtrd999t1atWqUtW7ZYw8pjo/7oo4/K6XR6XCRPOneF+UcffVS333677rjjDr322muaNm1aka68XtLGWpKmTZumBg0a6O2339Zzzz2nNWvW5Lu4mcvlUkJCgubNm6fAwED9+OOPFw3ceRcv/Omnn9S+fXtFRkZ6rL+XX35ZdevWVVxcnCQaa8AbTp8+rYyMjFI5+pbn22+/VevWrfXjjz9q1KhRGjZsmMf4Z555Rs8//7wWL16sNm3aaOXKlfnmcerUKX311VfWNVcu5c0331Tfvn2tu3Gc/11Tq1Yt/eUvf1FYWJg17K9//av27NmjVq1aKTc3V8HBwapXr57q1aunwMBAVa5c2Xp84c7WH374QcYYBQUF6aabbrKuTXG+vN8dnTt39jjtaNu2bQX+Jvnkk0+0aNEiHTt2LF/7IEmtW7fW2rVrdezYMT300EMaO3Zskd6Xkvr73/+u77///qLTPPnkkwoPD1dcXJw+/fRTvfvuu3rssccUGRmpBx54wJrOGKNly5ZZF3Zt2bKlli5dqqlTp6pOnTrFvv3kX//6VzmdznzXGklJSdHRo0cL/Mu7MGpBHA6HdY79mjVrdPPNN2v27Nlavny5oqOjPcbn/WVlZenIkSMeFzd79NFH1axZM3Xt2lWjRo3SjBkzrLvkvPHGGwW+ttvt1urVqy95akfe61zYjjudTvXq1UuPPPKI/vvf/6p///4eO9j/8Y9/qGXLlnrmmWf0wQcfqG3btlq+fLmGDBmitWvX5tv+n3nmGV1//fXWnXwOHDigDh06eJy6+fjjjystLU2TJ0/Otzzffvttgb0TcRkMUAynTp0yZ86cMTk5OUV+zpgxY4wkc+TIkQLHf/PNNyYqKspIMqNGjSpwmueff95IMs2aNTPffvttvvEnT540ISEhZtasWfnGNWjQwIwZM8YYY8zw4cPNNddcY9544w1z0003mWeffdb4+/ubxMREa/p9+/aZv/zlL+bkyZPmnnvuMd27dzfr1683+/btM8YY06dPH9O9e3dr+htuuME8/vjj1uO6deuaYcOGWY+XLl1qJJkmTZqY6Ohoc/3113s83xhjFi9ebCQV+Pfggw/mW6aPP/7YBAYGGofDYd54441847Ozs02NGjVMkyZNzEMPPWQOHjxY4Pt6OSRZ7+eFPvjgA/Pdd99d9PlHjx41kZGRpkGDBuaTTz4xc+fONWFhYSYyMtIcO3bMms7tdpu4uDjjdruNMec+A02bNjWDBg0yderUKXbd/fr1M06n0xw6dMgYY8ySJUuMJLNmzRpz5MiRAv+mTp1qJJnk5GSPeb322mtGkpk+fbrH8F27dpnGjRubRo0amaNHj1rLce+99xpJ5s9//rM5e/ZsoTUOHDiw0M9BQX8tW7bMN49du3aZXr16mf/85z/WsPbt25vu3bub7du3m1tuucUEBweb48ePm0cffdRIMl26dDGLFy82Z86c8ZjX7NmzTbt27UzVqlWNJBMREWH69OljZs+ebVJTU61pJJnPPvvM/PTTT0aSWblypTHGmK1bt5qffvrJWocA7HPVVVcV6/vj/L8L2+ctW7aY++67z0gyoaGh5qOPPrroa3/88ccmLCzMSDKxsbHmb3/7mzlx4oQxxpg33njD+Pn5eXy/Z2Zmmh07dpjKlSubl19+2RhjzODBg42/v7+RZEaOHGmOHTtmIiIiTIsWLczJkyfzvWZcXJzp1q2bx7D777//ksv61FNPWdM//PDDpnLlyubUqVOmR48eRpJp3ry5WbNmjcnNzS3W+2+MMYsWLTJ+fn4mMDDQVKlSxfp+/f7774v8PXg5r5vnYu2zJHPPPfdcch4//fSTadKkifV+1atXz6xevdpjmvXr15s5c+ZYj3/77TfTrl07U7NmTbNkyZJi1bx06VLjcDhM586drWEX+0104V9eW3u+rKwss2DBAnPTTTcZSaZ3797WdNdcc415+OGHrWnHjh1rBg0aZFq1amUkmZ9++sljXkePHjWDBw82derUMaGhoeaWW27J936cLyoqysTExJjt27df9G/FihVGknniiScu+R6lpKQYSaZmzZpGkomJiTHLli0zxhiTkZFhRo4caYKCgowkU7lyZdO2bVuzefNmY4wxjz/+uKlXr575y1/+4vG7wBhjXC6Xeeqpp4wkM2/ePGPMue1VkvV57d69uwkKCjKZmZmXrBMXR+hGsdCo06hf6Y366dOnTZ06dUzr1q2t9zE3N9fMmDHDVKlSxTRo0MDs2rXL4/WzsrLMPffcYySZtm3bFrpj4sEHHzSSLtlYb9++3dSpU8c0b968SMt/7bXXmurVq5uAgABTt25dM2PGDONyuYwxxrz77rtWQ+7v72+uvfZaq/H98MMPTZUqVcygQYPMypUr8+1smz9/vgkMDDQDBgwwxhgrdOftGMtrvPNCOAD7fPHFF+aLL74wy5cvN//617+K9Jf3nXPgwAFrPnPmzDGSjMPhMPfcc4/ZvXt3kV7/119/NY8++qgJCgoyd911l8nOzjZZWVkmMjLSdOzY0ZouIyPD1K9f3/p+/fLLL01ubq6JiooyQUFB5r333rOmXbp0qfH39zdvvvlmvte7/fbbTZcuXTyG9erVy9x6663mwIEDBf7VqlXLCjk7d+40/v7+pl+/fsaYc9/jb731lqlevbqRZK666ipz8803m379+pknnnjCPP3002bo0KFmyJAhZuDAgSYuLs7ceOONVm2ffvqp8ff3N7Vq1TL//e9/TWpqqhk2bJgJCAgwkkxkZKS58847zZAhQ8zzzz9vRo8ebUaMGGGGDBli7rvvPnPTTTeZhg0bmtOnTxdxjdsnOzvbfPvtt+Yf//hHvp2xpW3JkiWmadOmZtWqVdawzz77zEgymzZtMidPnizwb/r06UaS2b9/v8f8XnrpJVO5cmUjybRv3978+9//9hh/9dVXW+vcGGMmTpxoIiMjTbdu3cxnn31W4uWpU6eO6dChwyWn27t3r5FkHn300UtOu3LlSiPJVKtWzbz77rsF/tY7evSoSUhIMH/4wx/Mtdde6zH8wp39brfbLFmyxFxzzTUmICDAzJ492xo3ZcoUI8n87W9/M++++66pVKmS6dmz5yVrxKURulEsNOo06qWlPDfqhw8ftnpH/Pzzz6Zp06ZGkrnjjjtMSkpKgTXk5uaaV1991drp8+677+abpl+/fkYq2tdygwYNTJMmTS453alTp0xoaKjx8/Mzf/7zn016enq+aTIyMsy8efPMbbfdZipXrmztIEtPTy9wZ9TPP/9sunfvbv1gyGvQN2/ebCSZIUOGmE8++cQ0bdrUhIeHm+zs7CItE4CyldcTbefOnR7DX3/9detIWXEdOXLE2iFujDGbNm2yjsrlef/9982YMWPMihUrrGGff/55voBkjDH//e9/C3ydW265xdx8880ew7p3756vJ9n56tatawYOHGiMOXeU7/XXX893ZDMrK8t89NFHZsiQISY2NtbUq1fPhISEGD8/PyPJOJ1OExgYaCpXrmzCwsKsnaxbt241TZo0MevXr/eY3969e82YMWNMx44dTf369U1oaKgJCAgwDocj3w7eO++8s9DaK7KsrCyPxwsXLjSS8u3APt+8efOMpHxHb5OTk80jjzySbz3kadCggenVq1fJiy5EZGRksUJ33ufxUmbMmFHkXouXanPXrl1rIiMjTevWrc3GjRs9xm3fvt1ER0dbv9HbtGljtm3bVqTXxcURumE7GnUadV9Qmo36+XJycszDDz9s5s+fX6Q6Nm/ebOLj4wscl9cNvSgaNGhgoqOjizTtsmXLCvzcF+RSjfWxY8fM9ddfb2rWrGk+/PBDj3FZWVmmffv21ue4QYMG5uOPPy7S6wJASR0+fNgcPnzYa6+fkZHhtdeuSFJTU82uXbvYYWujgwcPlqjXI4rPYUwp3BgWuILkXQytdu3aXnn9zMzMAm+BhuJJS0vTb7/9pgYNGlz0qvjI79SpU/Lz87MuzAIAAIDCEboBAAAAALAJ93XxgpSUFEVHR2vfvn35xo0cOdK6BUOexYsXq1GjRvL391fr1q21ffv2MqoUAIArW0Ft9tNPP+1x+5/f/e53+Z5XUHsOALgyEbrLWEpKinr06FFg4N6yZYtmzJjhcd/oPXv2aODAgZowYYIOHTqkq6++WoMHDy7DigEAuDIV1mZv2LBBS5cu1cmTJ3Xy5Elt3rzZY3xB7TkA4MpF6C5jffr0Ub9+/fINd7vdeuyxx/Tss8+qUaNG1vDt27drwoQJuu+++1SzZk098cQT+Rp3AABQ+gpqs3NycrRt2za1b99eYWFhCgsL87i+QWHtOQDgynVFntPtdrt1+PBhVa1aVQ6Ho0xfe9++fWrYsKGuuuoqbdmyRQ0aNJAkzZ49Wy+99JImTpyo8PBwde7cWYGBgfmeP3fuXL377rv64YcfyrRuAEDZMMYoLS1NderUkdN5Ze8b92Z7LRXcZicmJqpbt26KjIzUkSNHdNNNN2natGmKioqSVPT2HABQvhWnvb4iQ/fBgwetxhEAAF904MAB1atXz9tleBXtNQDA1xWlvfYvo1p8Sl43sAMHDig0NNQrNZy/1/zDDz/Us88+q23btik8PFw5OTn64x//qD/96U8aOHCg9ZyxY8dqxYoVWrlyJbc4AoAKKjU1VVFRUdySTb7RXkvK1zvtfAcOHFCrVq20f/9+LV26tEjtOQCg/CtOe31Fhu68LmqhoaFebcSrVq2q0NBQHT9+XLGxsYqOjrbGtW7dWocOHbLq+/bbbzVnzhytXbtW4eHh3ioZAFBGvNGd2tf4Snst/a/NvlDjxo3ldrt15syZIrXnAICKpSjt9ZV9spiPqFevnjIzMz2G7d+/X3Xr1pUk7d27V3379tX06dPVokULb5QIAAAkjRgxQgsXLrQer1mzRk6nU1FRUZdszwEAVyZCtw/o3r27kpKSNGvWLB08eFBvvfWWEhMTdffddyszM1M9evTQnXfeqV69eik9PV3p6em6Ak/FBwDA637/+9/rhRde0DfffKN//vOfGjJkiB566CGFhIRctD0HAFy5rsju5b4mPDxcy5Yt03PPPaf4+HjVrl1bH330kaKiorR48WIlJSUpKSlJs2fPtp6zd+9eNWzY0HtFAwBwBerfv7+2bdume+65R35+furfv78SEhIkXbw9BwBcua7Iq5enpqbqqquu0unTpznHCgBKSW5urs6ePevtMnxeQECA/Pz8Ch1PG/U/vBcAcHncbreys7O9XUa5FxgYWOjtwIrTRnGkGwBQIsYYHT16VKdOnfJ2KeVGWFiYatWqxcXSAAClLjs7W3v37pXb7fZ2KeWe0+lUdHS0AgMDSzQfQjcAoETyAneNGjUUEhJCkLwIY4wyMjJ07NgxSVLt2rW9XBEAoCIxxujIkSPy8/NTVFRUoUdpcWlut1uHDx/WkSNHVL9+/RL9viF0AwAuW25urhW4uZ1h0VSqVEmSdOzYMdWoUeOiXc0BACiOnJwcZWRkqE6dOgoJCfF2OeVeZGSkDh8+rJycHAUEBFz2fAjdpWDC5hRvl3BJo66L8HYJACqgvHO4adiLJ+/9Onv2LKG7rC308Z4Y/a64S+0AKEW5ubmSVOLu0Dgn733Mzc0tUeimvwEAoMToUl48vF8AADuV13YmJydHa9euzTf82LFjXrllcmm9jz4RulNSUhQdHa19+/blGzdy5Ej17NnTY9jWrVsVExOjatWqacSIEdyzGgBQKo4eParffvvN22UAAHBFmjlzpu6//34dPnxY0rkQ7na71blzZ40dO1bp6elKS0tTcnKy9ZzffvtN69ev15kzZ/LN76233pLD4ZC/v3+Bfw6HQ6+88orty+X17uUpKSnq0aNHgYF7y5YtmjFjhhITE61hLpdLPXv2VNeuXfV///d/evrppzV//nwNHDiwDKsGAJR3v/76q8LDw1W5cmVr2Jw5c/T111/r+++/L/R5b731loYNG1Zot/Dc3Fy9/PLLevHFF0u9ZgAALktZn1pzGafK/PLLLxozZoyqVq2qunXrWheCGzx4sPbu3av3339fCQkJatKkiYwx2r59u6ZOnaqxY8eqTp06OnLkiJYsWaJ27dpZ8/Tz81OHDh20atWqAl+zY8eO8ve3PxJ7PXT36dNH/fr107p16zyGu91uPfbYY3r22WfVqFEja/jy5ct1+vRpTZ48WSEhIUpISNDQoUMJ3QDgY8r6ehfFvXbF8OHD5XQ6tWjRImvYJ598otdee+2iz/OVBhwAgIpiz549uu222/Tcc8/p+eef1yOPPKKuXbuqe/fu6tChg5YvX662bdvqtttu0yuvvKJ27dpp9+7dmjBhgrZt26a6detq7NixevHFFz3a56JcN+WKCN2zZ89WdHS0hg0b5jF81qxZ+s9//qPHHntMS5Ys0e23367AwEAlJiYqNjbWughNq1atlJSUdNHXcLlccrlc1uPU1FRJ54J9qdy/rhx0b+c+fQDs4Ha7ZYyx/rypuK8/Y8YMXX/99ZoyZYqeeeYZrVu3TomJiXrggQfyTTtz5kz16dNHkqzbr1zs9fz8/C46Pu/9Kqgd4vsaAHClqV+/vt577z31799ff/vb3xQYGKhvvvlGzzzzjCSpf//+ks51N58/f77atWsnl8uld955R3Xr1pUkXX/99fr000895luUc7LL4oKmXg/d0dHR+Yalp6drzJgxatSokfbv368PPvhAr776qlavXq3U1FSP5zgcDvn5+enkyZOqVq1aga8xfvx4jRs3Lt/w5ORkZWVllXgZqmSmlngedjt2LNfbJQCogM6ePSu3262cnBzl5OR4tZbivn5YWJjmzZune++9Vw8++KBeeeUVjR8/XsOHD7emOXbsmBo2bKiOHTta888LzIW9njFGDofjovXknaN2/PjxfFdDTUtLK9ZyAABQ3gUEBOjmm2/Od8rxqFGjFBwcrLFjx0o6d2D2xx9/lCRdc801uuaaayRJZ86c0fTp09WrVy+P5xcldJfFRee8HroL8tlnn+nMmTNauXKlIiIilJOTo5YtW+qDDz6Qv7+/goKCPKYPDg5WRkZGoaF79OjRio+Ptx6npqYqKipKkZGRCg0NLXG96Yd9/3YvNWpw/1wApS8rK0tpaWnWBUm86XJe/9Zbb1VSUpJ+/PFHbd26VR9//LFWrFihuXPn6uOPP9by5ct1ww03qFatWtZz/Pz8rIuyFCRvZ/DF6vH395fT6VR4eLiCg4M9xl34GAAA/M+FPcmWLVumPn36qEGDBvmup+JwOPTDDz8oIqLgU9BOnz6tu+66y65SLT4Zug8ePKjY2FjrzfH391erVq20e/duhYeHa+vWrR7Tp6WlXfRedEFBQfmCunSui2BeN8ESKQeX5C+V5QSACzidTjkcDuvPmy739WvWrKnGjRtr/vz5CgkJ0ZkzZ7R//345HA5de+21evXVVz3m7XQ69cMPPygyMrLA+eU14BerJ+/9Kqgd4vsaAHClqlmzpvz9/a1eYCdPnpTD4dD8+fOtabp16+bxnNtuu01ffvmlnnzySY0ePVpvvvmmNc7hcOimm2666HVYyoJPhu569eopMzPTY9j+/ft14403qmXLlpo9e7Y1fO/evXK5XKpevXpZlwkAKOdycnIUGxurDz74QJ06dZJ0bsfv6dOnJUmxsbH5nuMrDTgAABVJTk6OUlJSdOzYMYWHn+ule2H38oL4+/urQ4cOeuutt3T33Xd7hO6iXO+lLK5J45Ohu3v37nrqqac0a9Ys9ejRQ5999pkSExP18ccfq3bt2kpNTdW8efM0cOBAJSQkqHPnzmVyAjwAoGJ57733lJWVpSZNmljDVq5cqV9++UU7d+5U06ZN8z3HVxpwAAAqkhMnTigqKkpt2rSRdK4384kTJ3TVVVd5HOk+fvy4RowYoaZNm+rgwYPWtVgCAwPzZUJfabN9MnSHh4dr2bJleu655xQfH6/atWvro48+UlRUlKRz91Ht27evRowYIafTWejRBgAACpOWlqZx48bpvffes86/3rFjh9atW6eJEyfqueee05IlS/J1E/eVBhwAgIqkRo0a2rdvn9xutz788EMlJCSoZcuW6tixo8eR7n79+ql+/fpq2rSpBg8erEaNGum6667TuHHjdO+993rMsyh3BMnNtf+C0z4Tui/8gXLTTTdpzZo1BU4bFxenPXv2aOPGjYqNjbW6HwAAUFTDhw9X27ZtrW7lx48f1/33368xY8boscce06JFizRkyBD97W9/87jCuK804AAAVBTGGG3dulWLFy/WokWL1LFjR3333Xd64403rGnmzp2rf/7zn1q9erVee+01RUdH6+2331Z8fLxOnTql3r17a9KkSR7zzc3NveSF1Lp27Wrrskk+FLqLq1atWurevbu3ywAAlEPr16/X+++/r+3bt1uP+/fvr27duumJJ56QJH311Vdq3769brnlFs2ePVvNmjWT5DsNOAAARdbPt3tgpaenKyEhQa1atdI333yjGjVqSJJcLpd1cLZ9+/aKiorS7NmzrTtQ9evXT/369St0vrm5uZe8DktZ3PK03IZuAIBvG3VdwaHUF7Rt21abN29WdHS0Jk2apJdeekkTJkzQU089ZU0TGRmp7777Tg899JDat2+vpKQkRURE+EwDDgBARVG1alV9+OGH+YZPmTLF+n+TJk08rsFSFE8//bSefvrpQseX1WnKhG4AwBWpefPmkqRBgwbprrvuUuPGjfNNExkZqeXLl2vPnj3WkW1facABAED5QOgGAFzRqlWrpmrVql10moICOQAAQFE4vV0AAAAAAAAVFaEbAFBi3CKreHi/AAB2op0pHaX1PhK6AQCXLe9WWhkZGV6upHzJe7/OvxUZAAAl5efnJ0nKzs72ciUVQ977mPe+Xi7O6QYAXDY/Pz+FhYXp2LFjkqSQkBA5HA4vV+W7jDHKyMjQsWPHFBYWVuJGHACA8/n7+yskJETJyckKCAiQ08kx1svldruVnJyskJAQ+fuXLDYTugEAJVKrVi1JsoI3Li0sLMx63wAAKC0Oh0O1a9fW3r17tX//fm+XU+45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XpmZmaVTKQAAKJayarPbtWunzz77TFOmTNHChQt11113qVatWnr66aeVmpqqefPmSZISEhLUuXNn+fn5lWzBAAAoR4odulu0aKG//OUvWrNmjYwxhU43duxY/f3vf9f27dtLVOCcOXMUFRWlkJAQdezYUb/88oskaevWrYqJiVG1atU0YsSIi9YCAMCVqKza7HvuuUejRo3S1KlTNWDAAJ06dUqff/65AgICNGfOHD355JOKiIjQ4sWL9frrr1/u4gAAUC4VO3Tv2LFDH3zwgW666SbVqVPHoztZnq+//lozZ87U888/r+uvv/6yi9uzZ49efvllLV68WDt27FDjxo01YMAAuVwu9ezZU23atNGGDRuUlJSk+fPnX/brAABQEZVVm+1wOPTiiy9q//79ys7O1qZNm6wrmcfFxWnPnj167733tH37drVo0aJEywQAQHlTpHO6L/Tvf/9bLpdLS5cutbqt5dmwYYPuv/9+xcXFaezYsSUqbvPmzYqNjbV+BAwaNEj33nuvli9frtOnT2vy5MkKCQlRQkKChg4dqoEDB5bo9QAAqGjKqs2+mFq1auXr0g4AwJXisi/D16RJEz3zzDPWY7fbrZkzZ6pjx47q1q2bFi1aVOLiWrRooW+//VY///yzTp8+rRkzZqhLly5KTExUbGysQkJCJEmtWrVSUlJSiV8PAICKqCzabAAAULDLOtItSZs2bdL06dNVt25dHTp0SMuXL1e1atU0f/589e7du1SKa9GihXr37m11UYuOjta6des0YcIERUdHW9M5HA75+fnp5MmTBd730+VyyeVyWY9TU1MlnfvR4XaXwi0KysH55KWynEB54+PbJtslCmLH56Is2mwAAFCwIoXuf//736pfv77q169vDfvll1+0adMmrV+/Xvv371d6erquu+46jzBcUuvXr9eXX36ptWvXqlmzZpo4caK6deumW265Jd99PIODg5WRkVFg6B4/frzGjRuXb3hycrKysrJKXGeVzNQSz8Nux47lersEoMz5+rbJdomCpKWllej53mqzAQBAwYoUukeOHKmffvpJvXv3lsPhkMPhUO/evT32jm/atElz5szRjTfeqFGjRhUYcovrww8/VJ8+fXTDDTdIkl599VXNnDlTvXv31tatWz2mTUtLU2BgYIHzGT16tOLj463HqampioqKUmRkpEJDQ0tc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CaEbAAAAAACbELoBAAAAALAJoRsAAAAAAJsQugEAAAAAsAmhGwAAAAAAmxC6AQAAAACwCaEbAAAAAACbELoBAAAAALAJoRsAAAAAAJsQugEAAAAAsAmhGwAAAAAAmxC6AQAAAACwCaEbAAAAAACbELoBAAAAALAJoRsAAAAAAJsQugEAQIktXrxYjRo1kr+/v1q3bq3t27dLkrZu3aqYmBhVq1ZNI0aMkDHGy5UCAFC2CN0AAKBE9uzZo4EDB2rChAk6dOiQrr76ag0ePFgul0s9e/ZUmzZttGHDBiUlJWn+/PneLhdQSkqKoqOjtW/fPknS/Pnz5XA48v3xeQVQGnw+dLPnHAAA37Z9+3ZNmDBB9913n2rWrKknnnhCmzdv1vLly3X69GlNnjxZjRs3VkJCgubOnevtcnGFS0lJUY8ePazALUn9+vXTyZMnrb8DBw4oIiJC7dq1816hACoMf28XcDF5e85nzZqlDh066KmnntLgwYP17bffqmfPnuratav+7//+T08//bTmz5+vgQMHertkAACuOD169PB4vHPnTjVp0kSJiYmKjY1VSEiIJKlVq1ZKSkoqdD4ul0sul8t6nJqaKklyu91yu92lVK2PH28oteVEYfr06aO+fftq3bp11mfL399foaGh1jTTp0/XXXfdpejo6FL87KFwPr5dSmybxeLj67OU1mVxvht8OnSfv+dckp544gl1797dY895SEiIEhISNHToUEI3AABelp2drUmTJik+Pl67d+9WdHS0Nc7hcMjPz08nT55UtWrV8j13/PjxGjduXL7hycnJysrKKp0C/dqUznzscuyYtyuo8BISElS/fn0988wzOn78uLVTKE9WVpamTp2qZcuW6Rjro2z4+nYpsW0Wh6+vz1Jal2lpaUWe1qdDd2ntOQcAAGVjzJgxqly5sgYPHqwXXnhBQUFBHuODg4OVkZFRYOgePXq04uPjrcepqamKiopSZGSkx1HIEsndWDrzsUuNGt6uoMKrcd57HB4e7vFYkt59913FxsaqTRsfDw4Via9vlxLbZnH4+vospXUZHBxc5Gl9OnSfryR7zm3vrlYOzienaxSuSD6+bbJdFoOPr0up9NZnef5cfPvtt5o+fbrWrl2rgIAAVa9eXVu3bvWYJi0tTYGBgQU+PygoKF9IlySn0ymns7S6K/r4+1tqy4miKOiz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4cNNXtMc3K3NuEjtQ0SQkJCAkpISXLhwAQAwd+5c7N69G+vWrUNeXh5u3LhhfA6MJ2TW4du3bygtLYWzs3Ort4ZWV1ejvLzc7HjzjLYjR46ESqVCXFycSfmP33mDwYAHDx4gKCgISUlJUCqVSEhIaPVzp3/v27dvbX6X8vLyUFlZid69eyM8PBzTp0/H5MmT4erqilOnTmHJkiXYuXMnfH19AXxfD9TX1xchISE4efIkBg8e3B5doXbCzLZvzGvbxLy2f1ad10I24eDBgzJ06NDfqnv8+HFxcnKS0NBQ0ev1IiJy9epV8fPzk4KCglZfU19fLwBk//79/6zN9Gtv3rwRAPL48WN5+/atAJCePXtKcnKyREREiF6vl9raWunXr5+sWLFC4uLiZMqUKSIicubMGfH29hYXFxfJyckxe2+9Xi8A5PDhw+3drU6nurpaHBwcpHv37uLh4fHbm4uLiwQEBMj58+dFoVDIq1evREREo9HI6tWrpV+/fhITEyMiIpMmTRIAsnHjRjEYDKJSqUShUEhaWlpHdr3T6NOnj6xbt+6Xdd6/fy9VVVVmx5ctWyaOjo6SmJhoVnb37l3x8PCQzMzMf9VUshLMbPvCvLYPzGv7Z815zUG3HWpqapKGhoaObga1oaqqSgDI/fv35dWrV+Lt7S3FxcVSVVUlnp6esmHDBhERuXTpkjg5OQkASU5OFhGekNmT/Px8iY6ONu4bDAbx9fWV0NBQefTokYiIrFy5Ug4dOmTyugMHDohOp2vPptIfePbsmdy5c+en5a9fv27H1pA1YmZbP+Y1iTCv7Z2l81ohwoXjiDqCVquFt7c3ioqK4O/vj4aGBuPMtpmZmSgqKsKuXbsAAA8fPkR5eTlmzZplNisuERERWQ7zmoj+FgfdRERERERERBbCS3BEREREREREFsJBNxEREREREZGFcNBNREREREREZCEcdBMRERERERFZCAfdRERERERERBbCQTcRERERERGRhXDQTURERERERGQhHHQTERERERERWQgH3UREREREREQW8j9CG9MLxXh0ggAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import akshare as ak\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 参数：跌幅阈值\n",
    "drop_threshold = 0.01  # 表示3%\n",
    "# 设置开始时间，替换为你想要的日期（例如：2020年1月1日）\n",
    "start_date = '2020-01-01'\n",
    "\n",
    "# 提取第n日天数为变量\n",
    "n_day_offset = 2  # 第n日是从当前日期起偏移2天\n",
    "n_day_label = n_day_offset + 1  # 计算第n日的偏移值\n",
    "\n",
    "# 设置开始时间，确保获取的日期从开始时间开始\n",
    "start_date = pd.to_datetime(start_date)\n",
    "\n",
    "# 获取上证指数历史数据\n",
    "index_data = ak.stock_zh_index_daily(symbol=\"sh000001\")\n",
    "index_data['date'] = pd.to_datetime(index_data['date'])\n",
    "\n",
    "# 筛选数据：从开始时间到现在的数据\n",
    "index_data = index_data[index_data['date'] >= start_date]\n",
    "index_data.sort_values('date', inplace=True)\n",
    "index_data.reset_index(drop=True, inplace=True)\n",
    "\n",
    "# 添加每日涨跌幅（单位：百分比）\n",
    "index_data['涨跌幅'] = index_data['close'].pct_change()\n",
    "\n",
    "# 添加当天高开/低开 和 涨/跌 标识\n",
    "index_data['次日开盘-当日开盘'] = index_data['open'].shift(-1) - index_data['open']\n",
    "index_data['次日是否高开'] = index_data['次日开盘-当日开盘'].apply(lambda x: '高开' if x > 0 else '低开')\n",
    "\n",
    "index_data['次日收盘-当日收盘'] = index_data['close'].shift(-1) - index_data['close']\n",
    "index_data['次日是否上涨'] = index_data['次日收盘-当日收盘'].apply(lambda x: '上涨' if x > 0 else '下跌')\n",
    "\n",
    "# 添加第n_day_offset + 1日高开/低开 和 涨/跌 标识\n",
    "index_data[f'第{n_day_label}日开盘-当日开盘'] = index_data['open'].shift(-n_day_offset) - index_data['open']\n",
    "index_data[f'第{n_day_label}日是否高开'] = index_data[f'第{n_day_label}日开盘-当日开盘'].apply(lambda x: '高开' if x > 0 else '低开')\n",
    "\n",
    "index_data[f'第{n_day_label}日收盘-当日收盘'] = index_data['close'].shift(-n_day_offset) - index_data['close']\n",
    "index_data[f'第{n_day_label}日是否上涨'] = index_data[f'第{n_day_label}日收盘-当日收盘'].apply(lambda x: '上涨' if x > 0 else '下跌')\n",
    "\n",
    "# 找出跌幅超过阈值的那天，以及其次日、第n_day_label日的数据\n",
    "drop_days = index_data[(index_data['涨跌幅'] <= -drop_threshold) if drop_threshold < 0 else (index_data['涨跌幅'] >= drop_threshold) ].copy()\n",
    "drop_days['次日日期'] = drop_days['date'].shift(-1)\n",
    "drop_days[f'第{n_day_label}日日期'] = drop_days['date'].shift(-n_day_offset)\n",
    "\n",
    "# 筛出原始数据中这些次日、第n_day_label日对应的表现\n",
    "drop_result = index_data.loc[drop_days.index, [\n",
    "    'date', 'open', 'close', '涨跌幅',\n",
    "    '次日是否高开', '次日是否上涨',\n",
    "    f'第{n_day_label}日是否高开', f'第{n_day_label}日是否上涨'\n",
    "]].copy()\n",
    "\n",
    "# 统计次日和第{n_day_label}日的高开/低开、上涨/下跌次数\n",
    "counts = {\n",
    "    '次日高开': (drop_result['次日是否高开'] == '高开').sum(),\n",
    "    '次日低开': (drop_result['次日是否高开'] == '低开').sum(),\n",
    "    '次日上涨': (drop_result['次日是否上涨'] == '上涨').sum(),\n",
    "    '次日下跌': (drop_result['次日是否上涨'] == '下跌').sum(),\n",
    "    f'第{n_day_label}日高开': (drop_result[f'第{n_day_label}日是否高开'] == '高开').sum(),\n",
    "    f'第{n_day_label}日低开': (drop_result[f'第{n_day_label}日是否高开'] == '低开').sum(),\n",
    "    f'第{n_day_label}日上涨': (drop_result[f'第{n_day_label}日是否上涨'] == '上涨').sum(),\n",
    "    f'第{n_day_label}日下跌': (drop_result[f'第{n_day_label}日是否上涨'] == '下跌').sum(),\n",
    "}\n",
    "\n",
    "# 计算总次数\n",
    "total_count = len(drop_result)\n",
    "\n",
    "# 计算概率（频率）\n",
    "probabilities = {\n",
    "    '次日高开': counts['次日高开'] / total_count if total_count > 0 else 0,\n",
    "    '次日低开': counts['次日低开'] / total_count if total_count > 0 else 0,\n",
    "    '次日上涨': counts['次日上涨'] / total_count if total_count > 0 else 0,\n",
    "    '次日下跌': counts['次日下跌'] / total_count if total_count > 0 else 0,\n",
    "    f'第{n_day_label}日高开': counts[f'第{n_day_label}日高开'] / total_count if total_count > 0 else 0,\n",
    "    f'第{n_day_label}日低开': counts[f'第{n_day_label}日低开'] / total_count if total_count > 0 else 0,\n",
    "    f'第{n_day_label}日上涨': counts[f'第{n_day_label}日上涨'] / total_count if total_count > 0 else 0,\n",
    "    f'第{n_day_label}日下跌': counts[f'第{n_day_label}日下跌'] / total_count if total_count > 0 else 0,\n",
    "}\n",
    "\n",
    "# 打印统计的概率和总次数\n",
    "print(f\"\\n跌幅超过阈值的总次数: {total_count}\")\n",
    "print(f\"\\n概率统计：\")\n",
    "for key, prob in probabilities.items():\n",
    "    print(f\"{key}: {prob:.2f}\")\n",
    "\n",
    "# 创建次日和第{n_day_label}日的柱状图\n",
    "labels = ['高开', '低开', '上涨', '下跌']\n",
    "day2_vals = [counts['次日高开'], counts['次日低开'], counts['次日上涨'], counts['次日下跌']]\n",
    "day3_vals = [counts[f'第{n_day_label}日高开'], counts[f'第{n_day_label}日低开'], counts[f'第{n_day_label}日上涨'], counts[f'第{n_day_label}日下跌']]\n",
    "\n",
    "# 创建并排显示的柱状图\n",
    "fig, ax = plt.subplots(1, 2, figsize=(10, 6))  # 1行2列的图表，调整高度\n",
    "\n",
    "# 绘制次日柱状图\n",
    "x = range(len(labels))\n",
    "width = 0.35\n",
    "bars1 = ax[0].bar([i - width/2 for i in x], day2_vals, width=width, label='次日', color='skyblue')\n",
    "\n",
    "# 添加每个柱子的数值标签\n",
    "for bar in bars1:\n",
    "    height = bar.get_height()\n",
    "    ax[0].text(bar.get_x() + bar.get_width()/2, height + 0.5, f'{int(height)}',\n",
    "               ha='center', va='bottom', fontsize=10)\n",
    "\n",
    "ax[0].set_xticks(x)\n",
    "ax[0].set_xticklabels(labels, fontsize=12)\n",
    "ax[0].set_ylabel(\"次数\", fontsize=12)\n",
    "ax[0].set_title(f\"当天{'跌' if drop_threshold < 0 else '涨'}幅超过 {drop_threshold*100:.1f}% 后次日表现\", fontsize=14)\n",
    "ax[0].grid(axis='y', alpha=0.3)\n",
    "ax[0].legend()\n",
    "ax[0].set_ylim(0, max(day2_vals) + 3)  # 自动调整Y轴的最大值，给柱状图留点空间\n",
    "\n",
    "# 绘制第{n_day_label}日柱状图\n",
    "bars2 = ax[1].bar([i - width/2 for i in x], day3_vals, width=width, label=f'第{n_day_label}日', color='orange')\n",
    "\n",
    "# 添加每个柱子的数值标签\n",
    "for bar in bars2:\n",
    "    height = bar.get_height()\n",
    "    ax[1].text(bar.get_x() + bar.get_width()/2, height + 0.5, f'{int(height)}',\n",
    "               ha='center', va='bottom', fontsize=10)\n",
    "\n",
    "ax[1].set_xticks(x)\n",
    "ax[1].set_xticklabels(labels, fontsize=12)\n",
    "ax[1].set_ylabel(\"次数\", fontsize=12)\n",
    "ax[1].set_title(f\"当天{'跌' if drop_threshold < 0 else '涨'}幅超过 {drop_threshold*100:.1f}% 后第{n_day_label}日表现\", fontsize=14)\n",
    "ax[1].grid(axis='y', alpha=0.3)\n",
    "ax[1].legend()\n",
    "ax[1].set_ylim(0, max(day3_vals) + 3)  # 自动调整Y轴的最大值，给柱状图留点空间\n",
    "\n",
    "# 调整布局\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
